package dc.connectionmanager.logic;

import dc.connectionmanager.persistance.IConnection;

public interface IConnectionManager 
{
	
	int getMaxConnection();
	int getMinConnection();
	int getIdleTimeLimit();
	int getUpdaterInterval();
	
	void setMaxConnection(int nMaxConnection);
	void setMinConnection(int nMinConnection);
	void setIdleTimeLimit(int nIdleTimeLimit);
	void setUpdaterInterval(int time);
	
	void connect();
	IConnection getAvailableConnection();
	boolean createNewConnection(IConnection conn);
	Object sendCommand(String command);
	void sendCommand(IArgument arg);
	void sendCommandNC(String command);
	boolean isConnected();
	void checkConnectionIdle();
	boolean isReachable();
	boolean checkConnPoolLimit();
	void startConnection();
	int getCountConnections();
	void registerCommandClass(ICommand obj);
	ICommand getCommandClass();
	void startPlattformUpdater();
	void registerConnStatusFunc(IUpdaterConnStatus obj);
	void registerConnTriggerFunc(IUpdaterTriggerFunc obj);
}
